function deepClone(obj) {
    // 判断是否是对象或数组
    if (typeof obj !== 'object' || obj === null) {
      // 如果不是，直接返回
      return obj;
    }
    // 初始化结果
    let result;
    if (obj instanceof Array) {
      // 如果是数组，创建一个空数组
      result = [];
    } else {
      // 如果是对象，创建一个空对象
      result = {};
    }
    // 遍历对象的属性
    for (let key in obj) {
      // 如果是自身的属性，不是原型链上的
      if (obj.hasOwnProperty(key)) {
        // 递归调用深拷贝，将属性值也拷贝过来
        result[key] = deepClone(obj[key]);
      }
    }
    // 返回结果
    return result;
  }